home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr47 / is_con10.zip / TESTCON.ASM < prev    next >
Assembly Source File  |  1993-05-04  |  1KB  |  60 lines

  1. ;/* 
  2. ; * isconsole() - determines if a file handle is associated with the console.
  3. ; *
  4. ; *    Returns:
  5. ; *       0           Handle is not associated with the console
  6. ; *       non-zero    Handle is associated with the console
  7. ; */
  8.  
  9. ;Toad Hall Rewrite from original C to good old .ASM
  10. ;Test program named TESTCON.ASM.
  11. ;Run with and without redirection
  12. ;(suggest TESTCON >NUL for redirection).
  13. ;Results will be displayed to the screen in any case
  14. ;(e.g., STDERR)
  15. ;
  16. ;David Kirschbaum
  17. ;Toad Hall
  18.  
  19. STDIN    EQU    0
  20. STDOUT    EQU    1
  21. STDERR    EQU    2
  22.  
  23. CR    EQU    0DH
  24. LF    EQU    0AH
  25.  
  26. CSEG    SEGMENT PUBLIC PARA
  27.     ASSUME    CS:CSEG,DS:CSEG
  28.  
  29.     ORG    100H
  30.  
  31. TestConsole    PROC    NEAR
  32.     mov    ax,STDOUT
  33.     push    ax            ;parm on the stack
  34.     call    isconsole        ;see if it's associated with console
  35.     mov    dx,offset is_msg    ;'Is associated..'
  36.     mov    cx,IS_LEN        ;msg length
  37.     or    ax,ax            ;non-0 means TRUE
  38.     jnz    Got_Result        ;yep, true
  39.      mov    dx,offset not_msg    ;'Is *not* associated..'
  40.      mov    cx,NOT_LEN        ;msg length
  41. Got_Result:
  42.     mov    ah,40H            ;write to file/device
  43.     mov    bx,STDERR
  44.     int    21H
  45.     mov    ah,4CH            ;terminate, ERRORLEVEL in AL
  46.     int    21H
  47.  
  48.  
  49. is_msg    db    'stdout is associated with the console',CR,LF
  50. IS_LEN    EQU    $-is_msg
  51. not_msg    db    'stdout is *not* associated with the console',CR,LF
  52. NOT_LEN    EQU    $-not_msg
  53.  
  54. TestConsole    ENDP
  55.  
  56. INCLUDE    isconsol.asm
  57.  
  58. CSEG    ENDS
  59.     END    TestConsole
  60.